package com.woniuxy.amusementparkos.service.lsy;

import java.util.List;

import com.woniuxy.amusementparkos.entity.lsy.Pos;

/**
 * @author Muzi
 * 处理Pos机CRUD的服务
 * @since 2020年4月22日19:34:20
 * version:1.0
 */
public interface PosService {
	
	/**查询 所有可用POS机
	 * @author Muzi
	 * @return 返回所有可用pos机集合
	 * 返回值：为null检查dao层或*Dao.xml代码
	 * 		：为空集合对象，说明数据库无任何可用POS机信息
	 * @since 2020年4月22日19:34:20
	 * version:1.0
	 */
	List<Pos> listAllPos();
	
	/**
	 * 通过pos机ip获取一个POS机信息
	 * @param pos_ip 唯一
	 * @return
	 */
	Pos getByIp(String pos_ip);
	
	/**通过pos机编号查找
	 * @param pos_id:pos机唯一码
	 * @return Pos类对象 若返回值为：null，说明数据库无对应编码的POS机信息。
	 */
	Pos getOnePosById(String pos_id);
	
	
	/**
	 * 通过主键查询单个POS机
	 * @author Muzi
	 * @return 返回对应主键的POS机，若为null，说明数据库没有状态为1（可用）
	 * 且主键一致的POS机
	 */
	Pos getOnePosByPKId(Integer id);
	
	
	/**
	 * 通过柜台号查找柜台拥有的所有pos机
	 * @author Muzi
	 * @return 返回对应主键的POS机，若为空对象，说明数据库没有状态为1（可用）
	 * 柜台号一致的POS机
	 */
	List<Pos> listAllPosByCounterId(Integer counter_id);
	
	
	/**
	 * 通过组织号查找组织拥有的所有pos机
	 * @author Muzi
	 * @return 返回对应主键的POS机，若为null，说明数据库没有状态为1（可用）
	 * 组织编号一致的POS机
	 */
	List<Pos> listAllPosByOrganizationId(Integer organization_id);
	
	
	/**
	 * 添加pos机
	 * 通过捕获异常来
	 * @exception pos机编号重复的异常
	 */
	void insertOnePos(Pos pos);
	
	
	/**
	 * 修改POS机信息
	 */
	void updateOnePosById(Pos pos)throws RuntimeException;
	
	
	/**
	 * 删除pos机信息
	 */
	void deleteOnePosById(Integer id)throws RuntimeException;
}
